package com.my.yyr.service.safty.impl;

import com.my.yyr.dao.safty.HomeDao;
import com.my.yyr.dto.MenuDto;
import com.my.yyr.model.Module;
import com.my.yyr.service.safty.HomeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;
@Service @Transactional
public class HomeServiceIMpl implements HomeService {
    @Autowired
    private HomeDao homeDao;
    @Override
    public List<MenuDto> getUserMenuList(String userId) {
        List<Module> moduleList = homeDao.findUserModuleList(userId);

        List<MenuDto> parentList = new ArrayList<MenuDto>();//父菜单的集合

        MenuDto parentMenu = null;//当前父菜单

        for (Module module:moduleList){//遍历每一个从数据库中查询出来的原始的菜单数据
            if (parentMenu == null || !module.getP_id().equals(parentMenu.getMenuId())){
                //当前父菜单不存在 或者 原始数据的父菜单编号与当前父菜单编号不符合,说明需要一个新的父菜单作为当前父菜单
                parentMenu = new MenuDto();
                parentMenu.setMenuId(module.getP_id());
                parentMenu.setMenuName(module.getP_name());
                parentMenu.setSubMenuList(new ArrayList<MenuDto>());
                parentList.add(parentMenu);
            }

            //处理原始数据的子菜单部分
            MenuDto subMenu = new MenuDto();
            subMenu.setMenuId(module.getM_id());
            subMenu.setMenuName(module.getM_name());
            subMenu.setMenuUrl(module.getM_Url());
            parentMenu.getSubMenuList().add(subMenu);

        }
        return parentList;
    }
}
